const app = require('./app');
const { sequelize } = require('./config/database');
const models = require('./models');

// 服务器端口
const PORT = process.env.PORT || 3001;

// 启动服务器
const startServer = async () => {
  try {
    // 尝试连接数据库
    try {
      await sequelize.authenticate();
      console.log('数据库连接成功');

      // 同步数据库模型
      await models.sequelize.sync({
        alter: process.env.NODE_ENV !== 'production' // 在开发环境下自动修改表结构
      });
      console.log('数据库模型同步完成');
    } catch (dbError) {
      console.warn('数据库连接失败，服务器将继续启动但某些功能可能不可用:', dbError.message);
    }

    // 启动服务器
    app.listen(PORT, () => {
      console.log(`服务器运行在 http://localhost:${PORT}`);
      console.log(`API文档可访问: http://localhost:${PORT}/api/health`);
    });
  } catch (error) {
    console.error('启动服务器失败:', error);
    process.exit(1);
  }
};

// 启动服务器
startServer();